home *** CD-ROM | disk | FTP | other *** search
- #ifndef _STRING_H_
- #define _STRING_H_
-
- #ifndef _STDDEF_H_
- #include <stddef.h>
- #endif
-
- void *memchr (const void *, int, size_t);
- int memcmp (const void *, const void *, size_t);
- void *memcpy (void *, const void *, size_t);
- void *memmove (void *, const void *, size_t);
- void *memset (void *, int, size_t);
- char *strcat (char *, const char *);
- char *strchr (const char *, int);
- int strcmp (const char *, const char *);
- char *strcpy (char *, const char *);
- size_t strcspn (const char *, const char *);
- size_t strlen (const char *);
- char *strncat (char *, const char *, size_t);
- int strncmp (const char *, const char *, size_t);
- char *strncpy (char *, const char *, size_t);
- char *strpbrk (const char *, const char *);
- char *strrchr (const char *, int);
- size_t strspn (const char *, const char *);
- char *strstr (const char *, const char *);
- char *strtok (char *, const char *);
- char *strdup (const char *);
-
- int strcasecmp (const char *, const char *); /* BSD */
- int strncasecmp (const char *, const char *, size_t); /* BSD */
- char *stpcpy(char *, const char *); /* Lattice */
-
- /************************************************************************/
-
- #if defined(__GNUC__) && defined(__OPTIMIZE__)
-
- extern inline size_t __inlined_strlen(const char *String)
- {
- const char *t;
-
- t=String;
- while(*t++)
- ;
- return ~(String-t);
- }
-
- extern inline char *__inlined_strcpy(char *Dest, const char *Source)
- {
- char *t;
-
- t=Dest;
- do
- {
- *t++=*Source;
- }
- while(*Source++!='\0');
- return Dest;
- }
-
- extern inline char *__inlined_strcat(char *String1, const char *String2)
- {
- char *t;
-
- t=String1;
- while(*t++)
- ;
- --t;
- while((*t++=*String2++))
- ;
- return String1;
- }
-
- extern inline char *__inlined_stpcpy(char *Dest, const char *Source)
- {
- while ((*Dest++=*Source++))
- ;
- return Dest-1;
- }
-
- extern inline void *__inlined_memset(void *Memory, int Value, size_t Size)
- {
- if (Size != 0)
- {
- unsigned char *t=Memory;
-
- do
- {
- *t++=Value;
- }
- while(--Size != 0);
- }
- return Memory;
- }
-
- extern inline int __inlined_strcmp(const char *String1, const char *String2)
-
- {
- int Result;
-
- while (!(Result=*String1++-*String2) && *String2++)
- ;
- return Result;
- }
-
- #define strlen(String) __inlined_strlen(String)
- #define strcpy(Dest,Source) __inlined_strcpy(Dest,Source)
- #define strcat(String1,String2) __inlined_strcat(String1,String2)
- #define stpcpy(Dest,Source) __inlined_stpcpy(Dest,Source)
- #define memset(Memory,Value,Size) __inlined_memset(Memory,Value,Size)
- #define strcmp(String1,String2) __inlined_strcmp(String1,String2)
-
- #endif /* defined(__GNUC__) && defined(__OPTIMIZE__) */
-
- /************************************************************************/
-
- #ifdef __SASC_510
-
- int __builtin_memcmp (const void *, const void *, size_t);
- void *__builtin_memcpy (void *, const void *, size_t);
- void *__builtin_memset (void *, int, size_t);
- size_t __builtin_strlen (const char *);
- int __builtin_strcmp (const char *, const char *);
- char *__builtin_strcpy (char *, const char *);
-
- #define memset(Memory,Value,Size) __builtin_memset(Memory,Value,Size)
- #define memcmp(Memory1,Memory2,Size) __builtin_memcmp(Memory1,Memory2,Size)
- #define memcpy(Dest,Source,Size) __builtin_memcpy(Dest,Source,Size)
- #define strlen(String) __builtin_strlen(String)
- #define strcmp(String1,String2) __builtin_strcmp(String1,String2)
- #define strcpy(Dest,Source) __builtin_strcpy(Dest,Source)
-
- #endif /* __SASC_510 */
-
- /************************************************************************/
-
- #endif /* _STRING_H_ */
-